home *** CD-ROM | disk | FTP | other *** search
Wrap
/* _____ / __ _ _ __ __ __ _ __ ____ \ / _/ \ / / / / / / __ ___\ / \ / __ / / / __ / / \ / / / / \ / ______________________________________________________________________________ BugReporter&IdeaBank, © 1994 by Casa Nova, Sysop of Skyline BBS Berlin. Written for /T\empest BBS v3.15 or higher Versions. Started: 02-12-94 NOTE: - READ THE DOC ! ______________________________________________________________________________ */ OPTIONS RESULTS /*--------------------------*/ ARG BBS_NODE /* Grab the Node Number */ Address value 'TempRexx-'BBS_NODE /* Tell Arexx where the BBS Is ----------------------------------------------------------------------------*/ VERS = '1.8' /* DON'T CHANGE! / ----------------------------------------------------------------------------*/ PROGRAMNAME = 'BugReporter' /* DON'T CHANGE! / ----------------------------------------------------------------------------*/ V_DATE = '08-25-94' /* DON'T CHANGE! / ---------------------------------------------------------------------------- / $VER: BugReporter 1.8 (25.08.94) © by Casa Nova, Sysop of Skyline BBS Berlin ----------------------------------------------------------------------------*/ Bufferflush /* */ signal ON ERROR /* */ signal ON HALT /* */ signal ON SYNTAX /* */ signal ON FAILURE /* */ signal ON IOERR /* */ /*----------------------*/ 'BBSIDENTIFY' ABBEREXX /* + */ TEMP = (result) /* Tempest Version */ /*----------------------*/ TEMP_VERS = SUBSTR(TEMP,1,4) /* */ IF TEMP_VERS < '3.15' THEN DO /* */ MESSAGE /* */ MESSAGE ' INFO: This Tool needs a Tempest Software higher than 3.14a !' MESSAGE ' You are still running Tempest 'TEMP CALL DONE /* */ END /* */ 'Getvar' 0 /* UserName */ RUName = (result) /* Name UPPER-CASE */ 'Getvar' 0 /* Path where the BBS is*/ BBS = (result) /* located (don't change*/ /*----------------------*/ 'BBSIDENTIFY ANSI' /* Ansi on/off? */ GFX = (result) /* */ /*----------------------*/ /* */ DATE = DATE(USA) /* DATE */ /*----------------------*/ 'GetStr' 16 /* + */ DAT = (result) /* 30-05-94 */ /*----------------------*/ /* */ TIM = TIME() /* TIME */ /*----------------------*/ 'BBSIDENTIFY' NAME /* + */ SYSTEM = (result) /* Name of BBS */ /*----------------------*/ 'Getvar' 19 /* */ Baud = (result) /* Baud Rate of User */ /*----------------------*/ 'Getvar' 37 /* */ TL = (result) /* Daily Time Limit */ /*----------------------*/ 'Getvar' 39 /* */ TR = (result) /* Remaining Time */ /*----------------------*/ 'Getvar' 0 /* */ UName = (result) /* User whos ONLINE */ /*----------------------*/ 'Getvar' 4 /* */ LO = (result) /* User`s LOCATION */ /*----------------------*/ 'Getvar' 13 /* */ CT = (result) /* User's Computer-Type */ /*----------------------*/ 'Getvar' 94 /* */ TCT = (result) /* Calls Today */ /*----------------------*/ 'Getvar' 20 /* User Level */ LEV = (result) /* (don't change!) */ /*----------------------*/ 'Getvar' 128 /* User's Option flags */ UOP = (result) /* (don't change!) */ /*----------------------*/ 'Getvar' 18 /* UserSlotNumber(User#)*/ SN = (result) /* (don't change!) */ /*----------------------*/ 'Getvar' 12 /* UploadPath + DONE */ ULP = (result) /* (don't change!) */ /*----------------------*/ 'Getvar' 92 /* */ LANG = (result) /* Language */ /*----------------------*/ 'PATH' 6 /* Get the path of the */ DOORS = (result) /* BBS:DOORS/ */ /*----------------------*/ 'PATH' 15 /* Get the path of the */ TEXT = (result) /* BBS:TEXT/ */ /*----------------------*/ 'PATH' 17 /* UploadPath + DONE */ ULP = (result) /* (don't change!) */ /*----------------------*/ type = 'Bugs' /* (don't change!) */ file10 = DOORS'BugReporter/'type'.txt' /* (don't change!) */ fileCon= DOORS'BugReporter/BugReporter.data' /* (don't change!) */ /*----------------------------------------------------------------------*/ file0 = 'NODE:DOOR_'BBS_NODE /* Create NODE:DOOR_# */ OPEN(fn0,file0,'W') /* Displays in WHO.mod */ Writeln(fn0,'BugReporter ') /* when this tool is */ CLOSE(fn0) /* used! */ HEADER1 = MESSAGE ' 'system' 'PROGRAMNAME' 'VERS' 'copies(' ',23-length(system))''copies(' ',15-length(PROGRAMNAME))' Designed by Casa Nova ['V_DATE'] ' HEADER2 = MESSAGE ''COPIES('_',80)' ' CLS MSG MSG MSG = MESSAGE MESSAGE HEADER1 HEADER2 MESSAGE MESSAGE ' Date: 'DATE() MESSAGE ' Time: 'TIME() /*======================================================================*/ /* CONFIG / STATS */ /*======================================================================*/ STATS: c=1 IF ~exists(fileCON) THEN DO MESSAGE 'Welcome 'UName',' MESSAGE MESSAGE 'you`re running this Update at the first time. First I have to create' MESSAGE 'the ReporterStats. Please hold to the end of this process. Thanks!' MESSAGE Version = 0 /* 1 */ ShutOff = 0 /* 2 *//* 0 = ON 1 = OFF */ TdyDate = DAT /* 3 */ TdyUsed = 0 /* 4 */ TdyIdeas = 0 /* 5 */ TdyBugs = 0 /* 6 */ TotalUsed = 0 /* 7 */ TotalIdeas = 0 /* 8 */ TotalBugs = 0 /* 9 */ LstUser = RUName /* 10 */ LstIdea = '----------' /* 11 */ LstBug = '----------' /* 12 */ file11=DOORS'BugReporter/BugReporter.log' MESSAGE 'Reading `'file11'`' MESSAGE MESSAGE '(i=Idea found, b=Bug found)' MESSAGE IF ~exists(file11) THEN DO ERR7.l MESSAGE 'Error: Please contact Casa Nova!' GETCHAR CALL DONE END y = 0 OPEN(fn11,file11,'R') /* Load Text and read... */ do until eof(fn11) /* ..to the end of file... */ SENDSTRING '.' line.y = readln(fn11) /*--------------------------*/ enil = REVERSE(line.y) /* Check if Bug or Idea */ REASON=SUBWORD(enil,1,1) /* */ IF REASON='sguB' THEN DO /* Bug! */ TotalBugs = TotalBugs+1 /* add 1 bug to counter */ SENDSTRING '' /* */ BugsDAT=SUBSTR(Line.y,2,2)'-'||SUBSTR(Line.y,5,2)'-'||SUBSTR(Line.y,8,2) LstBug=SUBWORD(line.y,4,1) IF BugsDAT = DAT THEN DO TdyBugs = TdyBugs +1 SENDSTRING '' /* */ END SENDSTRING 'b' /* */ END /* ------------------------ */ IF REASON='saedI' THEN DO /* Idea! */ SENDSTRING '' /* */ TotalIdeas = TotalIdeas+1 /* add 1 Idea to counter */ IdeasDAT=SUBSTR(Line.y,2,2)'-'||SUBSTR(Line.y,5,2)'-'||SUBSTR(Line.y,8,2) LstIdea=SUBWORD(line.y,4,1) IF IdeasDAT = DAT THEN DO TdyIdeas = TdyIdeas +1 SENDSTRING '' /* */ END SENDSTRING 'i' /* */ END /* */ y = y+1 /* add for each line +1 */ END /* */ CLOSE(fn11) /* Close file */ SENDSTRING ' Done' MESSAGE MESSAGE TotalUsed = y-3 /* Number of entries */ TdyUsed = TdyBugs+TdyIdeas CALL DISPLAY_STATS MESSAGE 'Writing: 'fileCON' ' CALL WRITE_CONFIG END /*======================================================================*/ /* */ /*======================================================================*/ IF exists(fileCON) THEN DO OPEN(fnCON,fileCON,'R') /* Check # of lines */ DO until eof(fnCON) /* to the end of file */ con.c = readln(fnCON) /* Number of lines = x */ c = c+1 /* */ END /* */ CLOSE(fnCON) /* */ END Version = con.1 ShutOff = con.2 TdyDate = con.3 TdyUsed = con.4 TdyIdeas = con.5 TdyBugs = con.6 TotalUsed = con.7 TotalIdeas = con.8 TotalBugs = con.9 LstUser = con.10 LstIdea = con.11 LstBug = con.12 IF TdyDate ~= DAT THEN DO TdyDate = DAT TdyUsed = 0 TdyIdeas = 0 TdyBugs = 0 END CALL DISPLAY_STATS IF ShutOff = 1 THEN DO IF SN = 1 THEN DO MESSAGE 'OFFLINE! ' CALL WRITE_CONFIG END MESSAGE 'THIS TOOL IS OFFLINE AT THE MOMENT!' CALL DONE3 END WRITE_CONFIG: TdyUsed=TdyUsed + 1 TotalUsed=TotalUsed + 1 CALL STATS2 l=E /*======================================================================*/ /* LANGUAGE */ /*======================================================================*/ 'PATH' 11 /* Get the path of the */ OPTIONAL = (result) /* BBS:OPTIONAL/ */ FLang = OPTIONAL'LANGUAGES.OPT' /* add the filename */ IF exists(Flang) THEN DO /* Check */ x = 0 /* reset x to 0 */ OPEN(fnl,Flang,'R') /* Check # of lines... */ DO until eof(fnl) /* to the end of file. */ var.x = readln(fnl) /* Number of lines = x */ /*MESSAGE var.x x */ /* available languages */ x = x+1 /* */ END /* */ CLOSE(fnl) /* */ END /* */ LANG = var.LANG /* */ /* MESSAGE 'LANGUAGE:' LANG */ /* <-Example for output */ /*======================================================================*/ /* The selected LANGUAGE of the online User holds the variable: LANG */ /*======================================================================*/ l=E IF LANG = 'Deutsch' THEN DO l=G END IF LANG = 'English' THEN DO l=E END Q8.E = SENDSTRING 'Would you like to go to the [B]ug-Reporter or the [I]dea-Bank or [Q]uit ?: ' Q8.G = SENDSTRING 'Moechtest Du in den [B]ugreporter, in die [I]deen-Bank oder [A]bbruch ?: ' Q.8: Q.8a: MESSAGE MESSAGE Q8.l ASK_AGAIN_ACTION: ASK_ACTION: GETCHAR ACTION = upper(result) SELECT WHEN ACTION='I' THEN NEXT_ACTION WHEN ACTION='B' THEN NEXT_ACTION WHEN ACTION='Q' THEN NEXT_ACTION WHEN ACTION='A' THEN NEXT_ACTION OTHERWISE CALL ASK_AGAIN_ACTION END NEXT_ACTION: INFO = ' Info: ' IF ACTION='Q' THEN DO SENDSTRING 'Quit' CALL DONE END IF ACTION='A' THEN DO SENDSTRING 'Ende' CALL DONE END IF L='G' THEN DO IF ACTION='B' THEN DO SENDSTRING 'B' type2 = 'BugReporter' type = 'Bugs' Q8.G = SENDSTRING 'Wechsel zur [I]deen-Bank oder [Q]uit? : ' ERR4.G = SENDSTRING 'Danke fuer die Fehlerbeschreibung, 'UName'! ' END IF ACTION='I' THEN DO SENDSTRING 'I' type2 = 'IdeenBank' type = 'Ideas' Q8.G = SENDSTRING 'Wechsel zum [B]ugreporter oder [Q]uit? : ' ERR4.G = SENDSTRING 'Danke fuer die neue Idee, 'UName'! ' END ERR1.G = SENDSTRING INFO' Keine 'type'-Liste gefunden! ' ERR2.G = SENDSTRING INFO' Keine weiteren Eintraege. ' ERR3.G = SENDSTRING INFO' Keine 'type'-Liste gefunden - kein Download. ' ERR5.G = MESSAGE ' Wichtig: Bitte nur 'type' fuer Tempest BBS Software eingeben!' ERR7.G = SENDSTRING INFO' Kein BugReporter.log gefunden! ' ERR8.G = SENDSTRING INFO' Anzeige weiterer Eintraege abgebrochen. ' END IF L='E' THEN DO IF ACTION='B' THEN DO SENDSTRING 'B' type2 = 'BugReporter' type = 'Bugs' MENU.0 = MESSAGE ' Bug-Reporter Menu ' MENU.1 = MESSAGE ' [E]nter a Bug [C]hange to Tempest Idea-Bank ' MENU.2 = MESSAGE ' [R]ead the Bugreport [H]elp with Bug-Reporter ' MENU.3 = MESSAGE ' [D]ownload the complete Bugreport [S]tats ' MENU.4 = MESSAGE ' [U]pload Bug (single/batch) [Q]uit ' Q8.E = SENDSTRING 'Change to [I]dea-Bank or [Q]uit? : ' ERR4.E = SENDSTRING 'Thanks for reporting this bug, 'UName'! ' END IF ACTION='I' THEN DO SENDSTRING 'I' type2 = 'IdeaBank' type = 'Ideas' MENU.0 = MESSAGE ' Idea-Bank Menu ' MENU.1 = MESSAGE ' [E]nter Idea [C]hange to Bug-Reporter ' MENU.2 = MESSAGE ' [R]ead Idea-Bank [H]elp with Idea-Bank ' MENU.3 = MESSAGE ' [D]ownload the complete Idea-Bank [S]tats ' MENU.4 = MESSAGE ' [U]pload Idea (single/batch) [Q]uit ' Q8.E = SENDSTRING 'Change to [B]ug-Reporter or [Q]uit? : ' ERR4.E = SENDSTRING 'Thanks for the Idea, 'UName'! ' END ERR1.E = SENDSTRING INFO' No 'type'-List found! ' ERR2.E = SENDSTRING INFO' No more entries. ' ERR3.E = SENDSTRING INFO' No 'type'-List found - nothing downloaded! ' ERR5.E = MESSAGE ' Note: Please enter only 'type' from/for Tempest BBS Software!' ERR7.E = SENDSTRING INFO' No BugReporter.log found! ' ERR8.E = SENDSTRING INFO' Skipped displaying. ' END /********************* MAIN MENU *************************/ type: CLS MESSAGE HEADER1 HEADER2 MESSAGE SCREENOUT ' Username: 'UName' ' MESSAGE MESSAGE IF LANG = 'English' THEN DO MENU.0 MESSAGE MENU.1 MENU.2 MENU.3 MENU.4 MENU.5 MENU.6 MENU.7 END Q9.E = SENDSTRING ''type2' Menu [E/R/D/U/H/C/S/Q]: ' Q9.G = SENDSTRING ''type2' Menu [E/L/D/U/H/W/S/Q]: ' Q.9: fileLANG = TEXT||LANG||'/Menu-BugReporter'||type IF LANG ~= 'English' THEN DO IF ~EXISTS(fileLANG) THEN DO MENU.0 MESSAGE MENU.1 MENU.2 MENU.3 MENU.4 MENU.5 MENU.6 MENU.7 MESSAGE MESSAGE ' Menu-Help for 'type' in 'LANG' is not available at the moment. Notify Sysop! ' END END IF EXISTS(fileLANG) THEN DO SENDFILE fileLANG END MESSAGE MESSAGE /*MESSAGE 'Remaining Time: 'TR':00 ' */ Q9.l ASK_AGAIN_ACTION2: ASK_ACTION2: GETCHAR ACTION2 = upper(result) SELECT WHEN ACTION2='E' THEN NEXT_ACTION2 WHEN ACTION2='R' THEN NEXT_ACTION2 WHEN ACTION2='L' THEN NEXT_ACTION2 WHEN ACTION2='D' THEN NEXT_ACTION2 WHEN ACTION2='C' THEN NEXT_ACTION2 WHEN ACTION2='W' THEN NEXT_ACTION2 WHEN ACTION2='H' THEN NEXT_ACTION2 WHEN ACTION2='U' THEN NEXT_ACTION2 WHEN ACTION2='S' THEN NEXT_ACTION2 WHEN ACTION2='Q' THEN DONE OTHERWISE CALL ASK_AGAIN_ACTION2 END NEXT_ACTION2: IF L='G' THEN DO IF ACTION2='E' THEN DO SENDSTRING 'E' CALL MSGE END IF ACTION2='R' THEN DO SENDSTRING 'R' CALL REA END IF ACTION2='L' THEN DO SENDSTRING 'L' CALL REA END IF ACTION2='D' THEN DO SENDSTRING 'D' CALL DLD END END IF L='E' THEN DO IF ACTION2='E' THEN DO SENDSTRING 'E' CALL MSGE END IF ACTION2='R' THEN DO SENDSTRING 'R' CALL REA END IF ACTION2='D' THEN DO SENDSTRING 'D' CALL DLD END END IF ACTION2='W' THEN DO SENDSTRING 'W' CALL Q.8a END IF ACTION2='C' THEN DO SENDSTRING 'C' CALL Q.8a END IF ACTION2='U' THEN DO SENDSTRING 'U' MESSAGE MESSAGE CALL UPL END IF ACTION2='S' THEN DO SENDSTRING 'S' MESSAGE MESSAGE CALL DISPLAY_STATS ERR2.l GETCHAR CALL STAT END IF ACTION2='Q' THEN DO SENDSTRING 'Quit' CALL DONE END IF ACTION2='H' THEN DO SENDSTRING 'Help' CALL HELP END /********************* HELP ************************/ HELP: CLS MESSAGE HEADER1 HEADER2 MESSAGE IF L='E' THEN DO HELP.0 = MESSAGE ' The BugReporter allows you to sample, read or download Bugs or Ideas' HELP.1 = MESSAGE ' for/of /T\empest BBS Software.' HELP.2 = MESSAGE ' Don`t forget to enter the Version-Number and Date of Tempest-Software' HELP.3 = MESSAGE ' where you found the Bug or had the Idea for.' HELP.4 = MESSAGE '' HELP.5 = MESSAGE ' Example:' HELP.6 = MESSAGE ' (Tempest v3.20, 25th August 94)' HELP.7 = MESSAGE '' HELP.8 = MESSAGE ' When uploading Bug(s) or Idea(s), than be sure you upload ONE (Text-)' HELP.9 = MESSAGE ' File for EACH Bug/Idea. It does handle batch-uploads correct.' HELP.10= MESSAGE ' Each uploaded (Text-) File will be one Entry in the List.' HELP.11= MESSAGE '' HELP.12= MESSAGE ' When reading the Lists the last entry is displayed at first.' END IF LANG = 'English' THEN DO HELP.0 HELP.1 HELP.2 HELP.3 HELP.4 HELP.5 HELP.6 HELP.7 HELP.8 HELP.9 HELP.10 HELP.11 HELP.12 END fileLANG = TEXT||LANG||'/Help-BugReporter' IF LANG ~= 'English' THEN DO IF ~EXISTS(fileLANG) THEN DO HELP.0 HELP.1 HELP.2 HELP.3 HELP.4 HELP.5 HELP.6 HELP.7 HELP.8 HELP.9 HELP.10 HELP.11 HELP.12 MESSAGE MESSAGE ' Help-Text for 'type' in 'LANG' is not available at the moment. Notify Sysop! ' END END IF EXISTS(fileLANG) THEN DO SENDFILE fileLANG END MESSAGE MESSAGE MESSAGE SENDSTRING 'Press [RETURN] : ' GETCHAR CALL type /********************* MSGE ************************/ MSGE: MESSAGE CLS MESSAGE '[From ] : 'LEFT(RUName,17)' [Reply From] : None' MESSAGE '[Location] : 'LEFT(LO,30)' [Computer ] : 'CT'' MESSAGE '[Subject ] : 'LEFT(type,15)' [Node No. ] : 'BBS_NODE'' MESSAGE '[Msg Area] : Doors [Msg Mailed] : 'DATE' @ 'TIM'' MESSAGE '[Msg Type] : 'type'-List' MESSAGE ERR5.l file8='NODE:PN-BugEdit-'BBS_NODE 'MSGEDITOR 'file8' 99' file7 =DOORS'BugReporter/Bugs.txt' file13=DOORS'BugReporter/Ideas.txt' IF ~exists(file7) THEN DO IF ~exists(file13) THEN DO ADDRESS COMMAND 'MAKEDIR Doors:BugReporter' ADDRESS COMMAND 'ECHO >Doors:BugReporter/Ideas.txt "Date of creation: 'DATE'"' END ADDRESS COMMAND 'ECHO >Doors:BugReporter/Bugs.txt "Date of creation: 'DATE'"' END IF ~exists(file13) THEN DO IF ~exists(file7) THEN DO ADDRESS COMMAND 'MAKEDIR Doors:BugReporter' ADDRESS COMMAND 'ECHO >Doors:BugReporter/Bugs.txt "Date of creation: 'DATE'"' END ADDRESS COMMAND 'ECHO >Doors:BugReporter/Ideas.txt "Date of creation: 'DATE'"' END IF exists(file8) THEN DO file1='NODE:BugReport-'BBS_NODE OPEN(fn1,File1,'W') WRITEln(fn1,'~CLS~+[From ] : 'LEFT(RUName,17)' [Reply From] : None') WRITEln(fn1,'[Location] : 'LEFT(LO,30)' [Computer ] : 'CT'') WRITEln(fn1,'[Subject ] : 'LEFT(type,15)' [Node No. ] : 'BBS_NODE'') WRITEln(fn1,'[Msg Area] : Doors [Msg Mailed] : 'DATE' @ 'TIM'') WRITEln(fn1,'[Msg Type] : 'type'-List') WRITEln(fn1,'~+') CLOSE(fn1) ADDRESS COMMAND 'TYPE >>'file1' 'file8'' ADDRESS COMMAND 'DELETE 'file8' QUIET' IF exists(file1) THEN DO OPEN(fn1,File1,'A') WRITEln(fn1,' ') WRITEln(fn1,''copies('-',79)' ') WRITEln(fn1,'~r') CLOSE(fn1) END ADDRESS COMMAND 'TYPE >>'file1' Doors:BugReporter/'type'.txt' ADDRESS COMMAND 'COPY 'file1' Doors:BugReporter/'type'.txt' ADDRESS COMMAND 'DELETE 'file1' QUIET' file11=DOORS'BugReporter/BugReporter.log' IF ~exists(file11) THEN DO ADDRESS COMMAND 'ECHO >Doors:BugReporter/BugReporter.log "[DATE] [TIME] [NODE] [USERNAME] - [ACTION]: [TYPE]"' ADDRESS COMMAND 'ECHO >>Doors:BugReporter/BugReporter.log " "' END OPEN(fn11,File11,'A') WRITEln(fn11,'['DATE'] ['TIM'] ['BBS_NODE'] 'UName' - Entered: 'type'') CLOSE(fn11) MESSAGE MESSAGE IF Type = 'Bugs' THEN DO LstBug = UName TdyBugs=TdyBugs + x TotalBugs=TotalBugs + x END IF Type = 'Ideas' THEN DO LstIdea = UName TdyIdeas=TdyIdeas+x TotalIdeas=TotalIdeas + x END CALL STATS2 ERR4.l GETCHAR END CALL type /********************* DLD *************************/ DLD: MESSAGE file10 = DOORS'BugReporter/'type'.txt' IF ~exists(file10) THEN DO MESSAGE ERR3.l GETCHAR CALL type END ASK_DLD: Q10a.E = SENDSTRING 'Download incl. [A]NSI Codes, or without [N]ON-ANSI/(ASCII) File? [A/N] : ' Q10a.G = SENDSTRING 'Download `'type'-Liste` als [A]nsi- oder [N]ON-Ansi/ASCII-Datei? [A/N] : ' MESSAGE Q10a.l ASK_ANSI: GETCHAR AANSI = upper(result) SELECT WHEN AANSI='N' THEN CALL CONV_ANSI WHEN AANSI='A' THEN CALL GOON_DL WHEN AANSI='Q' THEN CALL BACK_TYPE OTHERWISE CALL ASK_ANSI END CONV_ANSI: MESSAGE MESSAGE Q10b.E = SENDSTRING 'Please hold, stripping ANSI`s...' Q10b.G = SENDSTRING 'Bitte warten, entferne die Ansi-Steuerzeichen...' Q10b.l file11 = 'NODE:'type'.asc'BBS_NODE y = 0 OPEN(fn11,file11,'W') WRITEln(fn11,'') CLOSE(fn11) OPEN(fn10,file10,'R') /* Load Text and read... */ OPEN(fn11,File11,'A') do until eof(fn10) /* ..to the end of file... */ line.y = readln(fn10) /* Each line has "y" (No.) */ H0 = SUBSTR(''line.y'',1,86) IF H0 = '-------------------------------------------------------------------------------' THEN DO line.y = '-------------------------------------------------------------------------------' END H0 = SUBSTR(''line.y'',1,2) IF H0 = '~r' THEN DO line.y = ' ' END H0 = SUBSTR(''line.y'',1,6) IF H0 = '~+' THEN DO line.y = ' ' END H0 = SUBSTR(''line.y'',1,3) IF H0 = '' THEN DO line.y = ' ' END H1 = SUBSTR(''line.y'',1,1) IF H1 = '' THEN DO line.y = ' ' END H1 = SUBSTR(''line.y'',1,6) IF H1 = '~CLS~+' THEN DO line.y = '[From ]: 'SUBSTR(''line.y'',43,31)'[Reply From]: None' END H1 = SUBSTR(''line.y'',1,25) IF H1 = '[From ]' THEN DO line.y = '[From ]: 'SUBSTR(''line.y'',36,31)'[Reply From]: None' END H2 = SUBSTR(''line.y'',1,29) IF H2 = '[Location] ' THEN DO H2a= SUBSTR(''line.y'',37,31) H2b= SUBSTR(''line.y'',105,25) line.y = '[Location]: 'H2a'[Computer ]: 'H2b'' END H2 = SUBSTR(''line.y'',1,28) IF H2 = '[Location] ' THEN DO H2a= SUBSTR(''line.y'',36,31) H2b= SUBSTR(''line.y'',102,25) line.y = '[Location]: 'H2a'[Computer ]: 'H2b'' END H3 = SUBSTR(''line.y'',1,29) IF H3 = '[Subject ] ' THEN DO H3a= SUBSTR(''line.y'',37,31) H3b= SUBSTR(''line.y'',105,25) line.y = '[Subject ]: 'H3a'[Node No. ]: 'H3b'' END H3 = SUBSTR(''line.y'',1,28) IF H3 = '[Subject ] ' THEN DO H3a= SUBSTR(''line.y'',36,31) H3b= SUBSTR(''line.y'',102,25) line.y = '[Subject ]: 'H3a'[Node No. ]: 'H3b'' END H4 = SUBSTR(''line.y'',1,29) IF H4 = '[Msg Area] ' THEN DO H4a= SUBSTR(''line.y'',37,31) H4d= SUBSTR(''line.y'',73,22) IF H4d= '[Msg Mailed]' THEN DO H4d= '[Msg Mailed]: ' H4b= SUBSTR(''line.y'',106,19) H4c= '' END IF H4d= '[Uploaded ]' THEN DO H4d= '[Uploaded ]: ' H4b= SUBSTR(''line.y'',106,3) H4c= SUBSTR(''line.y'',114,19) END line.y = '[Msg Area]: 'H4a''H4d''H4b''H4c'' END H4 = SUBSTR(''line.y'',1,28) IF H4 = '[Msg Area] ' THEN DO H4a= SUBSTR(''line.y'',36,31) H4d= SUBSTR(''line.y'',72,22) IF H4d= '[Msg Mailed]' THEN DO H4d= '[Msg Mailed]: ' H4b= SUBSTR(''line.y'',104,19) H4c= '' END IF H4d= '[Uploaded ]' THEN DO H4d= '[Uploaded ]: ' H4b= SUBSTR(''line.y'',104,3) H4c= SUBSTR(''line.y'',111,19) END line.y = '[Msg Area]: 'H4a''H4d''H4b' 'H4c'' END H5 = SUBSTR(''line.y'',1,29) IF H5 = '[Msg Type] ' THEN DO H5a= SUBSTR(''line.y'',37,31) line.y = '[Msg Type]: 'H5a'' END IF H5 = '[Msg Type] :' THEN DO H5a= SUBSTR(''line.y'',36,31) line.y = '[Msg Type]: 'H5a'' END WRITEln(fn11,line.y) SENDSTRING '.' y = y+1 /* add for each line +1 */ end /* */ CLOSE(fn10) /* Close file */ CLOSE(fn11) MESSAGE file10 = 'NODE:'type'.asc'BBS_NODE GOON_DL: Q10.E = SENDSTRING 'Start Download of `'type'-List`? [Y/N] : ' Q10.G = SENDSTRING 'Download der `'type'-Liste` starten? [J/N] : ' MESSAGE Q10.l GETCHAR ADLD = upper(result) SELECT WHEN ADLD='N' THEN CALL KILL_ASC WHEN ADLD='Y' THEN CALL GO_DLD WHEN ADLD='J' THEN CALL GO_DLD WHEN ADLD='Q' THEN CALL KILL_ASC OTHERWISE CALL DLD END BACK_TYPE: CALL type GO_DLD: IF ADLD='J' THEN DO SENDSTRING 'J' DOWNLOAD file10 END IF ADLD='Y' THEN DO SENDSTRING 'Y' DOWNLOAD file10 END ASK_DLD2: Q11.E = SENDSTRING 'Did you get the whole `'type'-List`? [Y/N] : ' Q11.G = SENDSTRING 'Hast Du den Download komplett erhalten? [J/N] : ' MESSAGE Q11.l GETCHAR ADLD2 = upper(result) SELECT WHEN ADLD2='N' THEN CALL ASK_DLD3 WHEN ADLD2='Y' THEN CALL KILL_ASC WHEN ADLD2='J' THEN CALL KILL_ASC WHEN ADLD2='Q' THEN CALL KILL_ASC OTHERWISE CALL ASK_DLD2 END ASK_DLD3: Q12.E = SENDSTRING 'Start Download again? [Y/N] : ' Q12.G = SENDSTRING 'Download nochmal starten? [J/N] : ' MESSAGE Q12.l GETCHAR ADLD2 = upper(result) SELECT WHEN ADLD2='N' THEN CALL KILL_ASC WHEN ADLD2='Y' THEN CALL GO_DLD WHEN ADLD2='J' THEN CALL GO_DLD WHEN ADLD2='Q' THEN CALL KILL_ASC OTHERWISE CALL ASK_DLD3 END KILL_ASC: IF exists('NODE:'type'.asc'BBS_NODE) THEN DO ADDRESS COMMAND 'DELETE NODE:'type'.asc'BBS_NODE' >NIL:' END CALL type /********************* READ ************************/ REA: MESSAGE file10 = DOORS'BugReporter/'type'.txt' IF ~exists(file10) THEN DO MESSAGE ERR1.l GETCHAR CALL type END MESSAGE SENDSTRING 'Please hold, loading data...' /* Checking if its time to reset the output file */ z = 0 n = -1 y = 0 OPEN(fn10,file10,'R') /* Load Text and read... */ do until eof(fn10) /* ..to the end of file... */ line.y = readln(fn10) /* Each line has "y" (No.) */ y = y+1 /* add for each line +1 */ end /* */ CLOSE(fn10) /* Close file */ i = 0 CLS DO UNTIL n = y /* */ n = n+1 i = i+1 IF n = y THEN DO line.n = ' ' n = n+1 CALL FIN END PAUSE_2: PAUSE_2 = SUBSTR(''line.n'',1,2) IF PAUSE_2 = '~r' THEN DO line.n = '' SendString 'Paused: More (Y/n/ns): ' QUERY MORE2 = upper(result) SELECT WHEN MORE2='NS' THEN CALL DEFIN_NS WHEN MORE2='N' THEN CALL FIN2 WHEN MORE2='Q' THEN CALL DONE OTHERWISE END END SCROLL_2 = SUBSTR(''line.n'',1,6) IF SCROLL_2 = '~+' THEN DO line.n = '' END CLS2 = SUBSTR(''line.n'',1,6) IF CLS2 = '~CLS~+' THEN DO line.n = SUBSTR(''line.n'',7,100) i = 0 CLS END MESSAGE line.n IF n = y THEN DO UNTIL i=20 /* If last Screen is shorter*/ MESSAGE ' ' /* as 20 entries, then fill */ i = i+1 /* screen up to 20 lines for*/ END /* cleaner output */ IF n = y THEN DO /* */ CALL FIN /* */ end /* */ IF i=20 then do MESSAGE SendString 'Paused: More (Y/n/ns): ' QUERY MORE2 = upper(result) SELECT WHEN MORE2='NS' THEN CALL DEFIN_NS WHEN MORE2='N' THEN CALL FIN2 WHEN MORE2='Q' THEN CALL DONE OTHERWISE Sendstring COPIES('',80) Sendstring ''COPIES(' ',80)'' Sendstring COPIES('',80) Sendstring COPIES('',80) Sendstring ''COPIES(' ',80)'' Sendstring COPIES('',80) END i = 0 END END DEFIN_NS: DO UNTIL n = y /* Display NON-STOP */ n = n+1 i = i+1 CLS2 = SUBSTR(''line.n'',1,6) IF CLS2 = '~CLS~+' THEN DO CLS line.n = SUBSTR(''line.n'',7,100) END SCROLL_2 = SUBSTR(''line.n'',1,6) IF SCROLL_2 = '~+' THEN DO line.n = '' END PAUSE_2 = SUBSTR(''line.n'',1,2) IF PAUSE_2 = '~r' THEN DO line.n = ' ' END IF n = y THEN DO line.n = ' ' END MESSAGE line.n END FIN: ERR2.l CALL FIN3 FIN2: MESSAGE ERR8.l FIN3: MESSAGE MESSAGE SendString '[RETURN] to Menu... ' getchar CALL type /********************* UPLOAD **********************/ UPL: file7 =DOORS'BugReporter/Bugs.txt' file13=DOORS'BugReporter/Ideas.txt' IF ~exists(file7) THEN DO IF ~exists(file13) THEN DO ADDRESS COMMAND 'MAKEDIR Doors:BugReporter' ADDRESS COMMAND 'ECHO >Doors:BugReporter/Ideas.txt "Date of creation: 'DATE'"' END ADDRESS COMMAND 'ECHO >Doors:BugReporter/Bugs.txt "Date of creation: 'DATE'"' END IF ~exists(file13) THEN DO IF ~exists(file7) THEN DO ADDRESS COMMAND 'MAKEDIR Doors:BugReporter' ADDRESS COMMAND 'ECHO >Doors:BugReporter/Bugs.txt "Date of creation: 'DATE'"' END ADDRESS COMMAND 'ECHO >Doors:BugReporter/Ideas.txt "Date of creation: 'DATE'"' END MESSAGE MESSAGE 'Upload 'type' (single or batch):' MESSAGE SENDSTRING '[Return] to Continue or [A]bort ?: ' ASK_UPL: GETCHAR UPLO = upper(result) SELECT WHEN UPLO=' ' THEN CALL GO_UPL WHEN UPLO='A' THEN CALL type OTHERWISE CALL ASK_UPL END GO_UPL: UPLOAD /* UPLOAD / -> WORK/DONE/ */ /* ULP = UploadPath */ MESSAGE ADDRESS COMMAND 'LIST >NODE:BugUL-'BBS_NODE' 'ULP'DONE/ LFormat="%s"' x = 1 file12 = 'NODE:BugUL-'BBS_NODE IF exists(file12) THEN DO OPEN(fn12,file12,'R') /* Check # of lines */ DO until eof(fn12) /* to the end of file */ var.x = readln(fn12) /* Number of lines = x */ x = x+1 /* */ END /* */ CLOSE(fn12) /* */ END x = x-2 MESSAGE MESSAGE x 'Uploads found.' MESSAGE SENDSTRING 'Please hold. Checking and Moving files to 'type'-List: ' DO t = 1 TO x ADDRESS COMMAND 'RENAME 'ULP'DONE/'var.t' TO 'ULP'DONE/txt.'t'' END t ADDRESS COMMAND 'DELETE NODE:BugUL-'BBS_NODE' QUIET' /* Kill NODE:BugUL-# */ DO m = 1 TO x SENDSTRING '' SENDSTRING m SENDSTRING '.' file8 = ULP'DONE/txt.'m file7=DOORS'BugReporter/Bugs.txt' file13=DOORS'BugReporter/Ideas.txt' IF exists(file8) THEN DO file1='NODE:BugReport-'BBS_NODE OPEN(fn1,File1,'W') WRITEln(fn1,'~CLS~+[From ] : 'LEFT(RUName,17)' [Reply From] : None') WRITEln(fn1,'[Location] : 'LEFT(LO,30)' [Computer ] : 'CT'') WRITEln(fn1,'[Subject ] : 'LEFT(type,15)' [Node No. ] : 'BBS_NODE'') WRITEln(fn1,'[Msg Area] : Doors [Uploaded ] : #'m' 'DATE' @ 'TIM'') WRITEln(fn1,'[Msg Type] : 'type'-List') WRITEln(fn1,'~+') CLOSE(fn1) ADDRESS COMMAND 'TYPE >>'file1' 'file8'' ADDRESS COMMAND 'DELETE 'file8' QUIET' IF exists(file1) THEN DO OPEN(fn1,File1,'A') WRITEln(fn1,' ') WRITEln(fn1,''copies('-',79)' ') WRITEln(fn1,'~r') CLOSE(fn1) END ADDRESS COMMAND 'TYPE >>'file1' Doors:BugReporter/'type'.txt' ADDRESS COMMAND 'COPY 'file1' Doors:BugReporter/'type'.txt' ADDRESS COMMAND 'DELETE 'file1' QUIET' file11=DOORS'BugReporter/BugReporter.log' IF ~exists(file11) THEN DO ADDRESS COMMAND 'ECHO >Doors:BugReporter/BugReporter.log "[DATE] [TIME] [NODE] [USERNAME] - [ACTION]: [TYPE]"' ADDRESS COMMAND 'ECHO >>Doors:BugReporter/BugReporter.log " "' END OPEN(fn11,File11,'A') WRITEln(fn11,'['DATE'] ['TIM'] ['BBS_NODE'] 'UName' - Upload # 'm': 'type'') CLOSE(fn11) END SENDSTRING '.' END m MESSAGE MESSAGE ERR6.G = SENDSTRING 'Danke fuer das Senden von' x ''type', 'UName'! ' ERR6.E = SENDSTRING 'Thanks for uploading' x ''type', 'UName'! ' ERR6.l IF Type = 'Bugs' THEN DO LstBug = UName TdyBugs=TdyBugs + x TotalBugs=TotalBugs + x END IF Type = 'Ideas' THEN DO LstIdea = UName TdyIdeas=TdyIdeas+x TotalIdeas=TotalIdeas + x END CALL STATS2 GETCHAR CALL type /********************* STATS **********************/ STAT: /*----------------------*/ IF RUName = 'Casa Nova' THEN DO; MESSAGE;SENDSTRING 'Press any Key.'; GETCHAR ;CALL STAT2 ;END IF SN ~= 1 THEN DO /* Main Sysop feature */ CALL type /* Read Logbook. */ END /* */ MESSAGE /*----------------------*/ STAT2: file11=DOORS'BugReporter/BugReporter.log' IF ~exists(file11) THEN DO MESSAGE ERR7.l GETCHAR CALL type END CLS SENDFILE file11 MESSAGE ERR2.l GETCHAR CALL type /*---------------------------------------------------------*/ DONE: CLS DO q = 1 TO 3 MESSAGE END q MESSAGE CENTER(' _'CENTER('',61,'_')' ',98,' ') MESSAGE CENTER('| 'CENTER('',61,' ')'| ',108,' ') MESSAGE CENTER('|'CENTER(''PROGRAMNAME' v'VERS', written for /T\empest BBS Software',62,' ')'| ',108,' ') MESSAGE CENTER('|'CENTER('by Casa Nova, Skyline BBS Berlin, +49 (0)30 824-1071.',62,' ')'| ',108,' ') MESSAGE CENTER('|'CENTER('Multilingual Version made for Dawn of Eternity',62,' ')'| ',108,' ') MESSAGE CENTER('|'CENTER('Idea taken from Rick Rumers BugLister for Tempest BBS',62,' ')'| ',108,' ') MESSAGE CENTER('|'CENTER('',62,'_')'| ',108,' ') MESSAGE CENTER(' 'CENTER('',61,' ')' ',98,' ') CALL DISPLAY_STATS MESSAGE DONE2: ADDRESS COMMAND 'DELETE NODE:DOOR_'BBS_NODE' quiet' /* Kill NODE:DOOR_# Info */ /*---------------------------------------------------------*/ 'exit' exit SYNTAX: message "**SYNTAX ERROR** in BugReporter: Line # " SIGL " Severity: " RC errortext(RC) message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit ERROR: message "**IO ERROR** in BugReporter: Line # " SIGL " Severity: " RC errortext(RC) message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit HALT: message "**HALT** in BugReporter: Line # " SIGL " Severity: " RC errortext(RC) message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit FAILURE: message "**FAILURE** in BugReporter: Line # " SIGL " Severity: " RC errortext(RC) message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit NOVALUE: message "**NOVALUE** in BugReporter: Line # " SIGL " Severity: " RC errortext(RC) message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit IOERR: message "**IOERR** in BugReporter: Line # " SIGL " Severity: " RC errortext(RC) message "Notify Sysop Immediately!! -- Hit any key " message " " getchar 'exit' exit STATS2: OPEN(fnCON,fileCON,'W') WRITELN(fnCON,'BugReporter 'VERS'') /* 1 */ WRITELN(fnCON,ShutOff) /* 2 */ WRITELN(fnCON,TdyDate) /* 3 */ WRITELN(fnCON,TdyUsed) /* 4 */ WRITELN(fnCON,TdyIdeas) /* 5 */ WRITELN(fnCON,TdyBugs) /* 6 */ WRITELN(fnCON,TotalUsed) /* 7 */ WRITELN(fnCON,TotalIdeas) /* 8 */ WRITELN(fnCON,TotalBugs) /* 9 */ WRITELN(fnCON,LstUser) /* 10 */ WRITELN(fnCON,LstIdea) /* 11 */ WRITELN(fnCON,LstBug) /* 12 */ WRITELN(fnCON,'; L1 : Toolname & Version L2 : unused L3 : Date ') /* 12 11 Letter */ WRITELN(fnCON,'; L4 : # of Used today L5 : Todays Ideas L6 : Todays Bugs') /* 12 11 Letter */ WRITELN(fnCON,'; L7 : Total Used L8 : Total Ideas L9 : Total Bugs') /* 12 11 Letter */ WRITELN(fnCON,'; L10: Last Used by L11: Last Idea by L12: Last Bug by') /* 12 11 Letter */ /* WRITECH(fnCON,D2C('0')) */ CLOSE(fnCON) RETURN DISPLAY_STATS: MESSAGE MESSAGE CENTER(' _'CENTER('',50,'_')' ',98,' ') MESSAGE CENTER('| 'CENTER('',50,' ')'| ',108,' ') MESSAGE CENTER('| ReporterStats 'RIGHT(Today,5,' ')' 'RIGHT(Total,5,' ')' 'LEFT(Last by User,15,' ')' | ',122,' ') MESSAGE CENTER('|'CENTER('',51,' ')'| ',108,' ') MESSAGE CENTER('| Used...........: 'RIGHT(TdyUsed,4,' ')' 'RIGHT(TotalUsed,4,' ')' 'LEFT(LstUser,15,' ')' | ',122,' ') MESSAGE CENTER('| Ideas stored...: 'RIGHT(TdyIdeas,4,' ')' 'RIGHT(TotalIdeas,4,' ')' 'LEFT(LstIdea,15,' ')' | ',122,' ') MESSAGE CENTER('| Bugs stored....: 'RIGHT(TdyBugs,4,' ')' 'RIGHT(TotalBugs,4,' ')' 'LEFT(LstBug,15,' ')' | ',122,' ') MESSAGE CENTER('|'CENTER('',51,'_')'| ',108,' ') MESSAGE CENTER(' 'CENTER('',50,' ')' ',99,' ') MESSAGE RETURN